package com.jrauto.CarAppBackend.service;

/**
 * @author : huiMing
 * Date : 2025年09月03日 16:27
 * @version V1.0
 */

import com.baomidou.mybatisplus.extension.service.IService;
import com.jrauto.CarAppBackend.entity.ChatMedia;
import com.jrauto.CarAppBackend.entity.ChatMessage;
import com.jrauto.CarAppBackend.entity.ChatSession;

import java.util.List;

/**
 * 聊天服务接口
 */
public interface IChatService extends IService<ChatMessage> {

    /**
     * 发送一条消息
     * @param message 消息对象
     * @return 发送成功的消息对象
     */
    ChatMessage sendMessage(ChatMessage message);

    /**
     * 保存媒体资源信息
     * @param media 媒体资源对象
     * @return 保存成功的媒体资源对象
     */
    ChatMedia saveMedia(ChatMedia media);

    /**
     * 获取指定用户的会话列表
     * @param userId 用户ID
     * @return 会话列表
     */
    List<ChatSession> getSessionsByUserId(Integer userId);

    /**
     * 获取指定会话的聊天记录，支持分页
     * @param sessionId 会话ID
     * @param page 页码
     * @param size 每页数量
     * @return 消息列表
     */
    List<ChatMessage> getMessagesBySessionId(Integer sessionId, int page, int size);

    /**
     * 删除一个会话（逻辑删除，将该会话从用户会话列表中移除）
     * @param userId 用户ID
     * @param sessionId 会话ID
     * @return 是否删除成功
     */
    boolean deleteSession(Integer userId, Integer sessionId);
}

